package com.mall.module.system.service;

import com.github.pagehelper.PageInfo;
import com.mall.module.system.domain.entity.SysDict;

import java.util.List;

/**
 * 系统字典服务接口
 */
public interface SysDictService {
    
    /**
     * 分页查询字典数据
     * 
     * @param pageNum 页码
     * @param pageSize 每页记录数
     * @param dictType 字典类型
     * @param dictKey 字典键
     * @param status 状态
     * @return 分页数据
     */
    PageInfo<SysDict> listDictPage(Integer pageNum, Integer pageSize, String dictType, String dictKey, Integer status);
    
    /**
     * 根据字典类型查询字典数据
     * 
     * @param dictType 字典类型
     * @return 字典数据列表
     */
    List<SysDict> listDictByType(String dictType);
    
    /**
     * 根据字典类型和字典键查询字典数据
     * 
     * @param dictType 字典类型
     * @param dictKey 字典键
     * @return 字典数据
     */
    SysDict getDictByTypeAndKey(String dictType, String dictKey);
    
    /**
     * 根据ID查询字典数据
     * 
     * @param id 字典ID
     * @return 字典数据
     */
    SysDict getDictById(Long id);
    
    /**
     * 新增字典数据
     * 
     * @param dict 字典数据
     * @return 结果
     */
    boolean addDict(SysDict dict);
    
    /**
     * 修改字典数据
     * 
     * @param dict 字典数据
     * @return 结果
     */
    boolean updateDict(SysDict dict);
    
    /**
     * 删除字典数据
     * 
     * @param id 字典ID
     * @return 结果
     */
    boolean deleteDict(Long id);
    
    /**
     * 批量删除字典数据
     * 
     * @param ids 字典ID数组
     * @return 结果
     */
    boolean deleteDictByIds(List<Long> ids);
} 